// MAXIMIZAR LA VENTANA SHIFT + ESC
package com.mybank.domain;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Id;

@Entity
@Table(name = "CUENTAS")
public class Cuenta implements Serializable {

    @Id
    @Column(name = "NUMERO")
    protected String idCuenta;
    @Column(name = "SALDO")
    protected double saldo;
    @Column(name = "SOBREGIRO")
    protected double sobregiro;
    @Column(name = "TIPO")
    protected String tipoCuenta;

    public Cuenta() {
    }

    public Cuenta(double saldo) {
        this.saldo = saldo;
    }

    public String getIdCuenta() {
        return idCuenta;
    }

    public void setIdCuenta(String numero) {
        this.idCuenta = numero;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    public double getSaldo() {
        return saldo;
    }

    public double getSobregiro() {
        return sobregiro;
    }

    public void setSobregiro(double sobregiro) {
        this.sobregiro = sobregiro;
    }

    public String getTipoCuenta() {
        return tipoCuenta;
    }

    public void setTipoCuenta(String tipoCuenta) {
        this.tipoCuenta = tipoCuenta;
    }

    public void deposito(double monto) {
        /*
         * ESTA IMPLEMENTACION VA A SER REEMPLAZADA POR HIBERNATE
         */

        saldo = saldo + monto;

        String driverDb;
        String urlDb;
        String usuarioDb;
        String passwordDb;
        // leo las propiedades ingresadas en Controller
        Properties p = System.getProperties();

        driverDb = p.getProperty("driverDb");
        urlDb = p.getProperty("urlDb");
        usuarioDb = p.getProperty("usuarioDb");
        passwordDb = p.getProperty("passwordDb");

        try {
            Class.forName(driverDb);
        } catch (ClassNotFoundException e) {
            System.out.println(e.toString());
        }

        String sql = "UPDATE CUENTAS "
                + " SET SALDO = " + saldo
                + " WHERE NUMERO = '" + this.idCuenta + "'";

        try {
            Connection con = DriverManager.getConnection(urlDb, usuarioDb, passwordDb);
            Statement s = con.createStatement();

            s.executeUpdate(sql);

            s.close();
            con.close();

        } catch (SQLException e) {
        } catch (Exception e) {
        }
    }
}
